Periodic Polling

Is there a way for a DXL script to run in a separate process/thread or through some other mechanism achieve "polling" where the script will idle and periodically perform some function without locking DOORS to other input?
Zetareticuli - Mon May 10 07:54:22 EDT 2010

Re: Periodic Polling
Mathias Mamsch - Tue May 11 10:48:40 EDT 2010

Not exactly a separate thread. But you can use the timer perms for implementing a polling. This is not a real "thread" since it will still lock the GUI while running but if the polling does not take too long you will have a nearly "multithreading" effect. I used this method to scan modules in the background it worked reasonably well.

The timer needs to be bound to a dialog box, so you can create one or if this timer shall run during the whole DOORS session you can bind it to the database explorer GUI (you would need to modify the startup scripts for this).

Maybe this helps.

Regards, Mathias
 

bool startTimer (int)
bool stopTimer (DBE)
DBE timer(DB,real,void (string))
DBE timer(DB,int,void (string))
bool stopTimer (int)
bool startTimer (DBE)
bool getTimerRunning (int)
string getTimerName (int)
bool isTimer (int)
int getTimerInterval (int)

 


Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

 

Re: Periodic Polling
Zetareticuli - Wed May 12 09:06:39 EDT 2010

I was hoping there might be a better solution than that, but it sounds like that might be workable. I think I'll pursue that suggestion and see where it takes me. Thanks.

Re: Periodic Polling
Mathias Mamsch - Wed May 12 11:49:08 EDT 2010

Zetareticuli - Wed May 12 09:06:39 EDT 2010
I was hoping there might be a better solution than that, but it sounds like that might be workable. I think I'll pursue that suggestion and see where it takes me. Thanks.

It depends on what you want to do ... You could start a separate batch process and communicate with it through sockets (keyword: DXL Server). Regards, Mathias

Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS